package cn.zhuoluodada.opensource.smartdb.sqlbuilder;


import cn.zhuoluodada.opensource.smartdb.SmartDb;
import cn.zhuoluodada.opensource.smartdb.sqlbuilder.convertor.ColumnNameConverter;
import cn.zhuoluodada.opensource.smartdb.sqlbuilder.convertor.TableNameConverter;

public interface SqlBuilderFactory {

    InsertSqlBuilder insert(TableNameConverter tableNameConverter, ColumnNameConverter columnNameConverter);

    UpdateSqlBuilder update(TableNameConverter tableNameConverter, ColumnNameConverter columnNameConverter);

    DeleteSqlBuilder delete(TableNameConverter tableNameConverter, ColumnNameConverter columnNameConverter);

    SelectSqlBuilder select(TableNameConverter tableNameConverter, ColumnNameConverter columnNameConverter);

    InsertSqlBuilder insert(SmartDb smartDb);

    UpdateSqlBuilder update(SmartDb smartDb);

    DeleteSqlBuilder delete(SmartDb smartDb);

    SelectSqlBuilder select(SmartDb smartDb);

    String wrapSpecialCharacterField(String field);

}
